﻿#ifndef SSICLOUD_BEHAVIOUR_SUMMARY_H
#define SSICLOUD_BEHAVIOUR_SUMMARY_H

#include <ssicloud_list_object.h>
#include <ssicloud_item_object.h>

namespace ssicloud {
/**
 * @brief The BehaviorScore class
 *  驾驶行为-分数
 */
class BehaviorScore : public ItemObject<BehaviorScoreNode>
{
public:
    BehaviorScore();

    //! 获取数据列表
    bool requestAll(const char *start = "20210501", const char *end = "20210531");

    //! 调试信息
    void profile();

protected:
    //! 分析数据
    int genResult(NetBuffer *data);

private:
    char m_body[1024];
};

/**
 * @brief The BehaviourSummary class
 *  驾驶行为，返回的列表数据
 * @note 结果：验证 OK
 */
class BehaviourSummary : public ListObject<BehaviourLNode>
{
public:
    BehaviourSummary();

    //! 获取数据列表
    bool requestAll(const char *start = "20210501", const char *end = "20210531");

    //! 调试信息
    void profile();

protected:
    //! 分析数据
    int genResult(NetBuffer *data);

private:
    char m_start[64];
    char m_end[64];
};

/**
 * @brief The BehaviourClassifySummary class
 *  驾驶行为-分类统计查询
 */
class BehaviourClassifySummary : public ItemObject<BehaviourClassifySummaryNode>
{
public:
    BehaviourClassifySummary();

    /**
     * @brief requestAll  获取数据列表
     * @param behaviorType  总览中返回的type
     * @param start
     * @param end
     * @return
     */
    bool requestAll(const char *behaviorType = "4097", const char *start = "20210501", const char *end = "20210531");

    //! 调试信息
    void profile();

protected:
    //! 分析数据
    int genResult(NetBuffer *data);

private:
    char m_start[64];
    char m_end[64];
    char m_type[64];
};
}

#endif // SSICLOUD_BEHAVIOUR_SUMMARY_H
